package com.ops.repository;

import com.ops.entity.Inspection;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;

/**
 * 巡检记录数据访问接口
 */
public interface InspectionRepository extends JpaRepository<Inspection, Long> {
    /**
     * 根据报告UUID、医院ID和需求年份查询巡检记录列表，按月份升序排序
     * @param reportUuid 报告UUID
     * @param hospitalId 医院ID
     * @param demandYear 需求年份
     * @return 巡检记录列表
     */
    List<Inspection> findByReportUuidAndHospitalIdAndDemandYearOrderByMonthAsc(String reportUuid, String hospitalId, String demandYear);

    /**
     * 根据报告UUID、医院ID、需求年份和月份查询单条巡检记录
     * @param reportUuid 报告UUID
     * @param hospitalId 医院ID
     * @param demandYear 需求年份
     * @param month 月份
     * @return 巡检记录
     */
    Optional<Inspection> findByReportUuidAndHospitalIdAndDemandYearAndMonth(String reportUuid, String hospitalId, String demandYear, Integer month);

    /**
     * 根据报告UUID查询所有巡检记录
     * @param reportUuid 报告UUID
     * @return 巡检记录列表
     */
    List<Inspection> findByReportUuid(String reportUuid);

    /**
     * 根据报告UUID删除巡检记录
     * @param reportUuid 报告UUID
     */
    void deleteByReportUuid(String reportUuid);
}